Importando as bibliotecas necessárias

library(tidyverse)
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.5     v purrr   0.3.4
## v tibble  3.1.5     v dplyr   1.0.7
## v tidyr   1.1.4     v stringr 1.4.0
## v readr   2.0.2     v forcats 0.5.1
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(readxl)
library(plotly)
## 
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
## 
##     last_plot
## The following object is masked from 'package:stats':
## 
##     filter
## The following object is masked from 'package:graphics':
## 
##     layout
library(gmodels)
library(sqldf)
## Carregando pacotes exigidos: gsubfn
## Carregando pacotes exigidos: proto
## Carregando pacotes exigidos: RSQLite

Carregando o arquivo Cadastral para fazer as análises

ds <- read_excel("cadastral.xlsx")
ds
  1. Tire uma tabela de frequência usando a função table na variável Sexo. Quantos homens e quantas mulheres têm no arquivo?
table(ds$Sexo)
## 
##  Feminino Masculino 
##       432       514
  1. Ordenar a variável ID.
ds <- ds[order(ds$ID),]
ds
  1. Remova os ID duplicados. Coloque esse arquivo dentro de um objeto chamado A.
A <- unique(ds)
A
  1. Já no objeto A. Tire uma tabela de frequência usando a função table na variável Sexo. Quantos homens e quantas mulheres têm no arquivo?
table(A$Sexo)
## 
##  Feminino Masculino 
##       216       257
  1. Crie uma variável data atual e acrescenta essa variável ao objeto/ arquivo A.
A$data_atual <- Sys.Date()
A
  1. Verifique se a variável salario é numérica?
is.numeric(A$salario)
## [1] TRUE
  1. Mostre o mínimo e o máximo da variável salario.
print(sprintf("Mínimo salário -> %0.2f", min(A$salario)))
## [1] "Mínimo salário -> 1575.00"
print(sprintf("Máximo salário -> %0.2f", max(A$salario)))
## [1] "Máximo salário -> 13500.00"
  1. Crie uma variável faixa de salario com as seguintes quebras: 1574, 3000, 5000, 7000, 13500.
A$faixa_salario <- cut(A$salario, c(1574, 3000, 5000, 7000, 13500),label=c("A","B","C","D"))
A
  1. Crie um visualizador/ matriz usando a função View(A). Exatamente esse comando.
View(A)
  1. Atribua o arquivo Transacional ao objeto B. E crie um visualizador/ matriz usando a função View(B).
B <- read_excel("transacional.xlsx")
View(B)
  1. Crie um objeto chamado consolidado e faça uma união dos arquivos A e B através do Left join. Usando a função do R.
consolidado <- merge(A,B, by='ID', all.x=T)
consolidado
  1. Crie uma variável comprometimento de renda usando as variáveis ValorEmprestimo e Salario. Para isso utilize a expressão. (ValorEmprestimo / salario). Quantas variáveis ficaram no arquivo?
consolidado$comprometido_de_renda <- (consolidado$ValorEmprestimo / consolidado$salario)
print(sprintf("Número de colunas -> %0.0f", ncol(consolidado)))
## [1] "Número de colunas -> 18"
  1. Faça um gráfico de pie usando o pacote plotly. Pode usar qualquer variáveis Explique o gráfico.
fig <- plot_ly(consolidado, labels = ~faixa_salario, values = ~salario, type = 'pie')
fig <- fig %>% layout(title = 'Faixa salarial',
         xaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE),
         yaxis = list(showgrid = FALSE, zeroline = FALSE, showticklabels = FALSE))

fig
#Criei um gráfico de pizza com a variável de faixa salarial:
#      39,2% das pessoas pertecem ao grupo A ([1500 - 3000[)
#      30,7% das pessoas pertecem ao grupo B ([3000 - 5000[)
#      17,7% das pessoas pertecem ao grupo C ([5000 - 7000[)
#      12,4% das pessoas pertecem ao grupo D ([7000 - 13500[)
# Temos praticamente 70% das pessoas com renda salarial de até 5000,00 reais formados pela class A e # B
  1. Faça um tabela cruzada usando a função Crosstable do packege gmodels das variáveis sexo e default. Olhando para percentual coluna, quem tem o maior % de inadimplência H ou M? e qual é esse valor.
Cross <- CrossTable(consolidado$Sexo, consolidado$default)
## 
##  
##    Cell Contents
## |-------------------------|
## |                       N |
## | Chi-square contribution |
## |           N / Row Total |
## |           N / Col Total |
## |         N / Table Total |
## |-------------------------|
## 
##  
## Total Observations in Table:  473 
## 
##  
##                  | consolidado$default 
## consolidado$Sexo |   Adimplente | Inadimplente |    Row Total | 
## -----------------|--------------|--------------|--------------|
##         Feminino |           49 |          167 |          216 | 
##                  |        1.810 |        0.686 |              | 
##                  |        0.227 |        0.773 |        0.457 | 
##                  |        0.377 |        0.487 |              | 
##                  |        0.104 |        0.353 |              | 
## -----------------|--------------|--------------|--------------|
##        Masculino |           81 |          176 |          257 | 
##                  |        1.521 |        0.577 |              | 
##                  |        0.315 |        0.685 |        0.543 | 
##                  |        0.623 |        0.513 |              | 
##                  |        0.171 |        0.372 |              | 
## -----------------|--------------|--------------|--------------|
##     Column Total |          130 |          343 |          473 | 
##                  |        0.275 |        0.725 |              | 
## -----------------|--------------|--------------|--------------|
## 
## 
print("Quem tem o maior precentual de inadiplência são os homens com 51,30%")
## [1] "Quem tem o maior precentual de inadiplência são os homens com 51,30%"
  1. Utilizando a biblioteca SQLDF pede-se:
    1. Selecione da tabela consolidado os registros do sexo masculino e que possui um conta particular.
    2. Tira a média de QtdaPagas pela variável Atraso .
sexo_masculino_particular <- sqldf("select * from consolidado where sexo = 'Masculino' and conta = 'Particular'")
sexo_masculino_particular
QtdaPagas_vs_Atraso <- sqldf("select Atraso, avg(QtdaPagas) as media_QtdaPagas from consolidado group by Atraso")
QtdaPagas_vs_Atraso
  1. Calcule a expressão numérica: (((√16)/2)3^2)/2(9-2^3),
calculo1 = ((sqrt(16)/2)*3^2)/2*(9-2^3)
calculo1
## [1] 9
  1. Calcule a expressão numérica: -(-23)+(-〖1)〗0-(√(25−3^2 ))-5^3/25
calculo2 <- -(-2^3) + (-1)^0 - sqrt(25 - ( 3 ^ 2)) - ( (5 ^ 3) / 25 )
calculo2
## [1] 0